package org.oschina.api.user.menu.dao;

import java.util.ArrayList;
import java.util.List;
import org.oschina.Constants;
import org.oschina.api.BaseDAO;
import org.oschina.api.user.menu.model.UserMenuRole;
import org.oschina.api.user.menu.vo.UserMenuVo;
import org.springframework.stereotype.Repository;

@Repository
public class UserMenuRoleDAO extends BaseDAO {

	/**
	 * 更新
	 * @param role
	 * @param menuRoles
	 * @return
	 */
	public int[] update(int role,List<UserMenuRole> menuRoles)
	{
		getQueryHelper().delete_cache(new String[]{"role=?"}, new Object[]{role},UserMenuVo.class);
		
		List<Object[]> args=new ArrayList<Object[]>();
		for(UserMenuRole menuRole:menuRoles)
			args.add(new Object[]{menuRole.getId(),menuRole.getMenu(),menuRole.getRole()});
		return getQueryHelper().batchUpdate_cache(Constants.CACHE_USER_MENU_ROLE, "INSERT "+Constants.DB_USER_MENU_ROLE+"(id,menu,role) VALUES(?,?,?)", args);
	}
	
	/**
	 * 根据menu删除
	 * @param menu
	 * @return
	 */
	public int removeByMenu(int menu)
	{
		return (int) getQueryHelper().delete_cache(new String[]{"menu=?"}, new Object[]{menu},UserMenuVo.class);
	}
	
	/**
	 * 根据menu删除
	 * @param role
	 * @return
	 */
	public int removeByRole(int role)
	{
		return (int) getQueryHelper().delete_cache(new String[]{"role=?"}, new Object[]{role},UserMenuVo.class);
	}
}